<!--
 * @Descripttion: 
 * @Version: 
 * @Author: gaohj
 * @Date: 2022-10-28 15:53:57
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-10-29 09:57:44
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
      字符串常用方法
        + 通用语法: 字符串.方法名()
        + 注意: 所有的字符串常用方法都会不改变原始字符串, 而是以返回值形式给出结果

      1. charAt()
        + 语法: 字符串.charAt(索引)
        + 返回值: 该索引位置的字符
          => 如果没有该索引位置, 返回的是 空字符串

      2. charCodeAt()
        + 语法: 字符串.charCodeAt(索引)
        + 返回值: 该索引位置字符的 unicode 编码
          => 如果没有该索引位置, 返回的是 NaN
        // String.fromcharCode() 
      3. toUpperCase()
        + 语法: 字符串.toUpperCase()
        + 返回值: 将原始字符串内的所有字母转换成大写

      4. toLowerCase()
        + 语法: 字符串.toLowerCase()
        + 返回值: 将原始字符串内的所有字母转换成小写

      5. substr()
        + 语法: 字符串.substr(开始索引, 多少个)  splice
        + 返回值: 截取出来的部分字符串

      6. substring()
        + 语法: 字符串.substring(开始索引, 结束索引)  slice()
        + 特点: 包前不包后
        + 返回值: 截取出来的部分字符串

      7. slice() 
        + 语法: 字符串.slice(开始索引, 结束索引)
        + 特点: 包前不包后, 填写负整数
        + 返回值: 截取出来的部分字符串

      8. split()  重点记住   
        + 语法: 字符串.split('分隔符')
        + 返回值: 是一个数组
          => 按照分隔符把字符串分开成为几段内容

      9. concat()
        + 语法: 字符串.concat(字符串1, 字符串2, ...)
        + 返回值: 拼接好的字符串

      10. indexOf()
        + 语法: 字符串.indexOf(查找的字符, 开始索引)
        + 返回值:
          => 如果原始字符串内有该字符串片段, 那么是该字符串片段第一次出现的首字母索引位置
          => 如果原始字符串内没有该字符串片段, 那么是 -1

      11. lastIndexOf()
        + 语法: 字符串.lastIndexOf(字符串片段, 开始索引)
        + 返回值:
          => 如果原始字符串内有该字符串片段, 那么是该字符串片段第一次出现的首字母索引位置
          => 如果原始字符串内没有该字符串片段, 那么是 -1

      12. includes()
        + 语法: 字符串.includes(字符串片段)
        + 作用: 该字符串中是否包含该字符串片段
        + 返回值: 一个布尔值
          => true 说明有该字符串片段
          => false 说明没有该字符串片段

      13. startsWith()
        + 语法: 字符串.startsWith(字符串片段)
        + 作用: 判断该字符串是否以该字符串片段开头
        + 返回值: 一个布尔值
          => true 说明以该字符串片段开头
          => false 说明不以该字符串片段开头

      14. endsWith()
        + 语法: 字符串.endsWith(字符串片段)
        + 作用: 判断该字符串是否以该字符串片段结尾
        + 返回值: 一个布尔值
          => true 说明以该字符串片段结尾
          => false 说明不以该字符串片段结尾

      15. trim()
        + 语法: 字符串.trim()
        + 作用: 去除字符串首尾空白
        + 返回值: 去除首尾空白后的字符串

      16. trimStart() / trimLeft()
        + 语法:
          => 字符串.trimStart()
          => 字符串.trimLeft()
        + 返回值: 去除开始位置空白以后的字符串

      17. trimEnd() / trimRight()
        + 语法:
          => 字符串.trimEnd()
          => 字符串.trimRight()
        + 返回值: 去除结束位置空白以后的字符串

      18. repalce()
        + 语法: 字符串.replace(换下字符, 换上字符)
        + 作用: 替换原始字符串内的片段
        + 注意: 只能替换一个
        + 返回值: 替换好的字符串
    */


    // 1 
    // var str1 = '最好的状态是不辜负生活,不辜负父母,不辜负新上的你';

    // alert(str1.charAt(6)); // 显示下标为6的字符 

    // 2
//     var str2 = 'i love you forever';
//   // a 97  A65
//     alert(str2.charCodeAt(0)); // o的unicode编码  a 97  以此类推 
// //  a 97  d 100
// //  b 98  e 101
// //  w
// //  x  -> a
// // y - b 
// // z - c 
    // alert('a'<'z');

    // document.write(String.fromCharCode(97,98,99)); // unicode转字符串 

    // 字符加密 
    // 凯撒密码 

    // a => d  b=>  e   c =>f   输入abc 输入def  

    // 3 
    // var str3 = 'i love you forever';
    // document.write(str3.toUpperCase());

    // var res = str3.toUpperCase();
    // document.write(res.toLowerCase());
    // Vue.js
    //4 
    // var str4 = 'i lovesyou forever';
    // var res = str4.substr(2,5); // 从2开始 截取5个 
    // document.write(res); // loves
    // var res = str4.substring(2,5); // 从2开始到下标5的前一位 结束  
    // document.write(res);lov // [2,5)  lov 

    //5 
    // var str5 = 'i lovesyou forever';
    // // var res = str5.slice(-6,-3); // 从2开始到下标5的前一位 结束  
    // // document.write(res);lov // [2,5)  lov 
    // var res = str5.slice(0); // 全要 
    // document.write(res);
    // slice支持负数的索引  并且 支持有头无尾 

    //6. 
    // var str6 = 'i loves you forever';
    // console.log(str6,typeof str6,'<br >')
    // var res = str6.split(" "); // 假入没有空格 那么split("")
    // // var res = str6.split("");
    // console.log(res,typeof res,'<br >')

    // var str6 = 'i loves you forever';
    // var res = str6.split("");
    // document.write(res.reverse().join(""));
    // 求s在str1 = 'qwertysuizxcvsbnmqwertyuasdfg' 里边出现的次数
    // var str = 'qwertysuizxcvsbnmqwertyuasdfg';
    // // split(""); 按照指定的符号进行切割   也可以按照指定的字符 一个或者一段
    // var res = str.split('s');
    // console.log(res.length-1);
    // str= 'qwertysuizxcvsbnmqwertyuasdfg'
    // var res = str.split('s').join('6');
    // console.log(res);

    // 7
    // var str7 = "javscript"
    // document.write(str7.concat(" yyds"));

    // 8 9 

    //var str8 = '喜欢一个人的感觉就是,别人在谈恋爱的时候,我想到了爱你';
    // document.write(str8.indexOf('爱')); // 16
    // document.write(str8.lastIndexOf('爱')); // 25 
    // document.write(str8.indexOf('爱',18));
    // document.write(str8.lastIndexOf('爱',3));

    // 求s在str1 = 'qwertysuizxcvsbnmqwertyuasdfg' 里边出现的次数
    // var str1 = 'qwertysuizxcvsbnmqwertyuasdfg';
    // var count = 0;
    // while(str1.indexOf('s') !== -1){
    //     str1 = str1.replace("s","*");// 替换完成一定要放回去  
    //     count+=1;

    // }
    // console.log(count);

    // 10 
    // var str10 = '喜欢一个人的感觉就是,别人在谈恋爱的时候,我想到了爱你';
    // document.write(str10.includes('谈恋爱')); // 查看字符串是否包含谈恋爱这一段 

    //11 

    // var str1 = 'www.baidu.com';
    // document.write(str1.startsWith("http://") || str1.startsWith("https://"));
    // document.write(str1.endsWith(".com") || str1.startsWith(".cn"));
    

    // 12 

    // var str12 = "      hello  world            ";
    // var res = str12.trim();
    // var res1  = str12.trimStart();
    // var res2  = str12.trimLeft();
    // var res3  = str12.trimEnd();
    // var res4  = str12.trimRight();

    // document.write('111'+res.concat('520'),'<br>');
    // document.write('test'+res1.concat('88'),'<br>');

    // document.write('test'+res2.concat('88'),'<br>');

    // document.write('haha'+res3.concat('999'),'<br>');

    // document.write('haha'+res4.concat('999'),'<br>');


    // var str13 = 'c++ is number 1';

    // var res = str13.replace('c++','javascript');
    // document.write(res,'<br>');
     </script>

</body>
</html>